﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BUS;
using DTO;

namespace NGU
{
    public partial class DangNhap : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //invalid_input - thong tin nhap vao khong hop le (username - password)
            //wrong_info - sai username hoac password
            //invalid_account - tai khoan da bi khoa
            //general_error - loi dang nhap
            //login_first

            if (Session["ID"] != null)
            {
                Response.Redirect("/Default.aspx");
            }

            if (!this.IsPostBack && Request["action"] != null && Request["action"].ToString() == "error")
            {
                if (Request["type"] == null)
                {
                    return;
                }
                else
                {
                    switch (Request["type"].ToString())
                    {
                        case "invalid_input":
                            this.error.InnerText = "Thông tin nhập vào sai. Mời bạn nhập lại";
                            break;
                        case "wrong_info":
                            this.error.InnerText = "Thông tin tên đăng nhập hoặc mật khẩu bị sai. Mời bạn nhập lại.";
                            break;
                        case "pending_account":
                            this.error.InnerText = "Tài khoản của bạn chưa kích hoạt. Vui lòng kiểm tra lại email kích hoạt.";
                            break;
                        case "blocked_account":
                            this.error.InnerText = "Tài khoản của bạn đã bị khóa. Vui lòng liên hệ quản trị để biết thêm chi tiết.";
                            break;
                        case "login_first":
                            this.error.InnerText = "Bạn phải đăng nhập trước khi thực hiện chức năng này";
                            break;
                    }
                }
            }
        }

        protected void loginBut_Click(object sender, EventArgs e)
        {
            if (this.username.Value.Trim() == "" || this.password.Value == "")
            {
                Response.Redirect("DangNhap.aspx?action=error&type=invalid_input");
            }
            else
            {
                TaiKhoanBUS bus = new TaiKhoanBUS();
                TaiKhoanDTO tk = bus.layThongTinTaiKhoan(this.username.Value, this.password.Value);
                if (tk == null)
                {
                    Response.Redirect("DangNhap.aspx?action=error&type=wrong_info");
                }
                else
                {
                    if (tk.TrangThai == 0)
                    {
                        Response.Redirect("DangNhap.aspx?action=error&type=pending_account");
                    }
                    else
                        if (tk.TrangThai == -1)
                        {
                            Response.Redirect("DangNhap.aspx?action=error&type=blocked_account");
                        }

                    Session["ID"] = tk.MaTaiKhoan;
                    Session["Username"] = tk.Username;
                    Session["TrangThai"] = tk.TrangThai;
                    Session.Timeout = 30;


                    if (this.remember.Checked)
                    {
                        HttpCookie cookie = new HttpCookie("remember", "yes");
                        cookie.Expires = DateTime.Now.AddDays(10);
                        Response.Cookies.Add(cookie);
                        cookie = new HttpCookie("unpw");
                        cookie.Expires = DateTime.Now.AddDays(10);
                        cookie.Values.Add("un", tk.Username);
                        cookie.Values.Add("wp", bus.getMD5(tk.Username + tk.Password));
                        Response.Cookies.Add(cookie);
                    }
                    Response.Redirect("/Default.aspx");
                }
            }
        }
    }
}